#!/bin/bash
# 每半小时 执行

stat_key=$1

if [ -z "$2" ] ; then
    deal_date=$(date -d "1 day ago" +%Y-%m-%d)
else
    deal_date=$2
fi



if [ -z "$1" ] ; then
  echo "错误：stat_key 为空，退出" >> "${LOG_FILE}"
  exit 1
fi


LOG_DIR="/home/cys/www/script/logs"
# 日志文件名包含日期，每次执行的日志前添加时间戳
FILE_NAME="update_mysql_stat_anchor"
LOG_FILE="${LOG_DIR}/${FILE_NAME}_$(date +%Y-%m-%d).log"
mkdir -p "${LOG_DIR}"
echo "" >> "${LOG_FILE}"
echo "" >> "${LOG_FILE}"
# 记录开始时间
echo "[$(date +%Y-%m-%d_%H:%M:%S)] 开始执行 同步mysql 命令" >> "${LOG_FILE}"
echo "key：${stat_key}，处理日期：$deal_date" >> "${LOG_FILE}"
echo "key：${stat_key}，处理日期：$deal_date"

# 验证日期合法性（通过date命令解析，失败则报错）
if ! date -d "$deal_date" >/dev/null 2>&1; then
  echo "错误：输入的日期 $deal_date 不合法" >> "${LOG_FILE}"
  echo "错误：输入的日期 $deal_date 不合法"
  exit 1
fi

echo "输入日期转换毫秒值" >> "${LOG_FILE}"

# 转换为毫秒数（默认时间为 00:00:00）
# 步骤：解析日期→获取秒级时间戳→×1000
milliseconds=$(date -d "${deal_date} 00:00:00" +%s | awk '{print $1 * 1000}')

result="${milliseconds}"
echo "转换后毫秒值：${milliseconds}" >> "${LOG_FILE}"
echo "转换后毫秒值：${milliseconds}"

KEY_JOIN_TIME=("stat.ch.active.anchor" "stat.ch.active.device.anchor" "stat.ch.new.anchor" "stat.ch.new.device.anchor")

for day in "${KEY_JOIN_TIME[@]}"; do
  if [ "${stat_key}" == "${day}" ] ; then
      result="${milliseconds}/${milliseconds}"
  fi
done

echo "需要修改的key: ${stat_key} 值：${result}" >> "${LOG_FILE}"
echo "需要修改的key: ${stat_key} 值：${result}"

pre_result=$(mysql -h rm-gw8a4drz5t1dde7g3.mysql.germany.rds.aliyuncs.com -P 3306 -u root -p'suKeepgo123@cys' -D cfx_t -N -s -e "SELECT anchor FROM cfx_t.stat_anchor WHERE NAME='${stat_key}';")

pre_milliseconds=$(echo "$pre_result" | cut -d'/' -f1)

# 1. 毫秒转秒级时间戳（除以1000，取整数）
seconds=$(echo "$pre_milliseconds / 1000" | bc)  # 或用 awk: echo $milliseconds | awk '{print int($1/1000)}'

# 2. 格式化秒级时间戳为可读时间（格式：年-月-日 时:分:秒）
formatted_time=$(date -d "@${seconds}" +"%Y-%m-%d %H:%M:%S")

echo "修改之前的的key: ${stat_key} 值：${pre_result} formatted_time：${formatted_time}" >> "${LOG_FILE}"
echo "修改之前的的key: ${stat_key} 值：${pre_result} formatted_time：${formatted_time}"

mysql_result=$(mysql -h rm-gw8a4drz5t1dde7g3.mysql.germany.rds.aliyuncs.com -P 3306 -u root -p'suKeepgo123@cys' -D cfx_t -N -s -e "update cfx_t.stat_anchor set anchor='${result}' WHERE NAME='${stat_key}';")

echo "mysql_result：${mysql_result}" >> "${LOG_FILE}"

after_result=$(mysql -h rm-gw8a4drz5t1dde7g3.mysql.germany.rds.aliyuncs.com -P 3306 -u root -p'suKeepgo123@cys' -D cfx_t -N -s -e "SELECT anchor FROM cfx_t.stat_anchor WHERE NAME='${stat_key}';")

after_milliseconds=$(echo "$after_result" | cut -d'/' -f1)

# 1. 毫秒转秒级时间戳（除以1000，取整数）
seconds=$(echo "$after_milliseconds / 1000" | bc)  # 或用 awk: echo $milliseconds | awk '{print int($1/1000)}'

# 2. 格式化秒级时间戳为可读时间（格式：年-月-日 时:分:秒）
formatted_time=$(date -d "@${seconds}" +"%Y-%m-%d %H:%M:%S")

echo "修改之后的的key: ${stat_key} 值：${after_result} formatted_time：${formatted_time}" >> "${LOG_FILE}"
echo "修改之后的的key: ${stat_key} 值：${after_result} formatted_time：${formatted_time}"